DualHashBidiMap এবং DualTreeBidiMap ব্যবহার

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) Bidirectional Maps এবং Advanced Map Operations |
102
102

Apache Commons Collections একটি শক্তিশালী লাইব্রেরি যা উন্নত ডেটা স্ট্রাকচার প্রদান করে, এবং এর মধ্যে DualHashBidiMap এবং DualTreeBidiMap দুটি বিশেষ ধরনের BidiMap (Bidirectional Map) ক্লাস। এই দুটি ক্লাস আপনাকে একটি মানচিত্রে কি-to-value এবং value-to-key উভয় দিক থেকে অ্যাক্সেস করতে সক্ষম করে। এরা মূলত two-way mapping প্রদান করে, যেখানে আপনি একটি মান থেকে কী এবং একটি কী থেকে মান খুঁজে পেতে পারেন।

এখানে, আমরা DualHashBidiMap এবং DualTreeBidiMap এর ব্যবহার এবং পার্থক্য নিয়ে আলোচনা করব।


1. DualHashBidiMap


DualHashBidiMap হল একটি BidiMap যা HashMap এর মতো কার্যকরীভাবে কাজ করে এবং কী ও মানের মধ্যে দ্বৈত সংযোগ (bidirectional mapping) তৈরি করে। এটি উভয় দিক থেকে মানের অ্যাক্সেস এবং সঞ্চালন করতে পারে। DualHashBidiMap একটি অর্ডারবিহীন মানচিত্র প্রদান করে, যার মাধ্যমে আপনি কী থেকে মান এবং মান থেকে কী উভয় দিক থেকে অ্যাক্সেস করতে পারবেন।

DualHashBidiMap এর বৈশিষ্ট্য:

  • Bidirectional: এটি একটি কী থেকে মান এবং মান থেকে কী উভয় দিক থেকে অ্যাক্সেস প্রদান করে।
  • HashMap ভিত্তিক: এটি HashMap ব্যবহার করে এবং এতে কোনও নির্দিষ্ট ক্রম থাকে না (অর্ডারবিহীন)।
  • Unordered: এটি অর্ডার বজায় রাখে না এবং সাধারণত দ্রুত অ্যাক্সেস প্রদান করে।

DualHashBidiMap উদাহরণ:

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.DualHashBidiMap;

public class DualHashBidiMapExample {
    public static void main(String[] args) {
        // Create a DualHashBidiMap
        BidiMap<String, String> bidiMap = new DualHashBidiMap<>();

        // Add key-value pairs
        bidiMap.put("A", "Apple");
        bidiMap.put("B", "Banana");

        // Access value by key
        System.out.println("A -> " + bidiMap.get("A"));  // Output: Apple

        // Access key by value
        System.out.println("Apple -> " + bidiMap.getKey("Apple"));  // Output: A
    }
}

এখানে:

  • DualHashBidiMap ব্যবহার করে আমরা key-to-value এবং value-to-key এর মধ্যে সম্পর্ক স্থাপন করেছি।
  • get() পদ্ধতি দিয়ে মান প্রাপ্তি এবং getKey() পদ্ধতি দিয়ে কী প্রাপ্তি করা হয়েছে।

2. DualTreeBidiMap


DualTreeBidiMap হল একটি BidiMap যা TreeMap ভিত্তিক এবং এটি কী এবং মান উভয়ের জন্য Sorted Order প্রদান করে। এটি কী ও মানের মধ্যে bidirectional mapping প্রদান করে এবং মানগুলিকে sorted (সাজানো) অবস্থায় রাখে।

DualTreeBidiMap এর বৈশিষ্ট্য:

  • Bidirectional: এটি একটি কী থেকে মান এবং মান থেকে কী উভয় দিক থেকে অ্যাক্সেস প্রদান করে।
  • TreeMap ভিত্তিক: এটি TreeMap ব্যবহার করে, যা কী এবং মান উভয়কেই সজ্জিত করে (sorted by key).
  • Ordered: এটি কী এবং মানের জন্য সাজানো তথ্য প্রদান করে।

DualTreeBidiMap উদাহরণ:

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.DualTreeBidiMap;

public class DualTreeBidiMapExample {
    public static void main(String[] args) {
        // Create a DualTreeBidiMap
        BidiMap<String, String> bidiMap = new DualTreeBidiMap<>();

        // Add key-value pairs
        bidiMap.put("A", "Apple");
        bidiMap.put("B", "Banana");
        bidiMap.put("C", "Cherry");

        // Access value by key (sorted order)
        System.out.println("A -> " + bidiMap.get("A"));  // Output: Apple
        System.out.println("B -> " + bidiMap.get("B"));  // Output: Banana

        // Access key by value
        System.out.println("Apple -> " + bidiMap.getKey("Apple"));  // Output: A
        System.out.println("Banana -> " + bidiMap.getKey("Banana"));  // Output: B
    }
}

এখানে:

  • DualTreeBidiMap ব্যবহার করে কী এবং মান উভয়ের জন্য sorted order প্রদান করা হয়েছে। TreeMap এর সুবিধা অনুসারে, এখানে কী গুলি অর্ডারড এবং ডুপ্লিকেট কী অনুমোদিত নয়।

DualHashBidiMap এবং DualTreeBidiMap এর মধ্যে পার্থক্য

পয়েন্টDualHashBidiMapDualTreeBidiMap
ভিত্তিHashMap ভিত্তিকTreeMap ভিত্তিক
অর্ডারঅর্ডারবিহীন (unordered)সাজানো (sorted by key)
পারফরম্যান্সদ্রুত অ্যাক্সেস প্রদান করে (এছাড়া অর্ডার থাকে না)ধীর হতে পারে কারণ এটি কী অনুযায়ী সাজানো থাকে
উপকারিতাদ্রুত কীরকম অ্যাক্সেস এবং বড় ডেটা সেটে কার্যকরীডেটাকে কী দ্বারা সাজানো (sorted) থাকা প্রয়োজন
কী-মূল্য সম্পর্কউভয় দিকের অ্যাক্সেস (bidirectional)উভয় দিকের অ্যাক্সেস (bidirectional)

কখন DualHashBidiMap ব্যবহার করবেন?

  • যখন আপনাকে দ্রুত মানচিত্রের মাধ্যমে উপাদান অ্যাক্সেস করতে হবে এবং আপনি কী বা মানের সাজানো অবস্থান প্রয়োজন মনে করছেন না।
  • যখন ডেটার সংখ্যা খুব বেশি এবং অর্ডারের প্রয়োজন নেই।

কখন DualTreeBidiMap ব্যবহার করবেন?

  • যখন আপনাকে কী এবং মান উভয় দিক থেকে সাজানো (sorted) অবস্থায় অ্যাক্সেস করতে হবে।
  • যখন ডেটা সেট ছোট না হয় এবং কী অনুযায়ী সাজানো থাকা প্রয়োজন।

সারাংশ


DualHashBidiMap এবং DualTreeBidiMap উভয়ই BidiMap এর বাস্তবায়ন, তবে তাদের মধ্যে পার্থক্য হলো DualHashBidiMap দ্রুত অ্যাক্সেস এবং অর্ডারবিহীন মানচিত্র সরবরাহ করে, যেখানে DualTreeBidiMap কী এবং মান উভয়কেই সাজানো অবস্থায় (sorted) রাখে। DualHashBidiMap সাধারণত দ্রুততর পারফরম্যান্স প্রদান করে, কিন্তু DualTreeBidiMap সাজানো ডেটা প্রক্রিয়ার জন্য উপযোগী। উভয়ই কী থেকে মান এবং মান থেকে কী এর মধ্যে সম্পর্ক বজায় রাখে এবং ডেটা প্রক্রিয়াতে শক্তিশালী সমাধান প্রদান করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion